home *** CD-ROM | disk | FTP | other *** search
- PLANT v0.50a (10/07/93)
- Copyright (c) 1993 by Robert Bryerton
- CIS[73747,433] GRAPHDEV forum
- This program is freely distributable.
-
-
- ----------INTRODUCTION
- PLANT is a small utility used for creating 'organic' plant-like objects
- using a simple 'fractal' formula. The generated output file can then be
- used as an include file for the POV-Ray v1.0 and v2.0 or Polyray v1.6
- raytracers. It also writes CTDS input files.
-
-
- ----------WHAT'S NEW
- v0.50a Added POV-Ray v2.0 support
-
- Added cone output for (much) smoother appearance.
- This option is NOT available for POV 1.0 output.
-
- New command line switches...NOTE that some have changed
-
- Added ability to output only parts of plant
-
- Refined texture writing methods... you can now specify if you want
- to use 1 'global' texture (to image or color map, for example)
- instead of the default 4 colors.
-
- v0.40a original program released
-
-
- ----------FEATURES
- 2D 'wire-frame' display of object while it is being created.
- This allows you to try out many different combinations of parameters
- without having to render each time to see the object. Pretty primitive,
- but it works. Requires VGA or better. Display is optional.
-
- Nested bounding boxes.
- This speeds up renderering time dramatically using POV 1.0 . I've
- also gotten 6 to 10% increases in speed with Polyray in addition
- to using the autobounding feature in Polyray. This option must be
- specified on the command line now. Note that if you are using
- POV 2.0, the object will render MUCH faster WITHOUT using the
- bounding box option.
-
-
- ----------HARDWARE REQUIREMENTS
- 80286 or higher, with or without a math coprocessor. If the program senses
- one, it will be used, speeding execution by about 300%. This is not really
- an issue as the 'typical' output file takes about 10 seconds to generate.
- See below for typical timings.
-
-
- ----------FILES INCLUDED
- DESERT.PI A Polyray scene file...just extra junk basically!
- PLANT.PI Basic Polyray scene file for default object
- PLANT.POV Basic POV-Ray 2.0 scene file for default object
- PLANT_1.POV Basic POV-Ray 1.0 scene file for default object
- PLANT.DOC This file
- PLANT.EXE DOS executable program
- PLANT.MAK MS C++ v8.00 make file
- PLANT050.CPP Source code
-
-
- ----------PROGRAM USAGE
- PLANT is easy to use since it is interactive. Just type PLANT at the DOS
- prompt and enter the parameters required. Most of the questions are straight
- forward. The parameters requested are briefly defined as follows with
- the defaults show in brackets:
-
- 1 POV 2.0
- 2 POV 1.0
- 3 Polyray
- 4 CTDS
-
- Number for format? [1]:
- Simple enough. Pick a number. Default is POV 2.0
-
- Ouput filename? [plant.inc]:
- Enter the output file name.
-
- Union name? [plant]:
- The name of the output file 'include' object.
-
- Number of branches ? [4]:
- This will make 4 long branches, each subdividing into 4 smaller ones,
- and so on. Values larger than 7 can created VERY large files. You can
- control the division with the "Divide branches by" parameter described
- below.
-
- Maximum # of spheres per branch ? [60]:
- This is the starting value for the # of spheres in each branch,
- which then will be divided by the "Divide branches by" parameter
- which is described below. Note that if you are using cone output
- (default), roughly 1 cone will be generated for each sphere.
- This only slows down the render by about 15% for POV 2.0 and 22%
- for Polyray compared to using spheres only (-o...see CL options below).
-
- Minimum # of spheres per branch ? [1]:
- This number will limit the minimum size of any new segments created.
- Enter higher values for less 'detail'.
-
- Global scaling ? [1.0]:
- This scales the overall size of the plant. The default size is about
- 10 units in each direction. If you are using POV-Ray v1.0, see the
- note on scaling below.
-
- ****************************EXTENDED OPTIONS
- (-e...see command line options below)
-
- Disregard branches longer than ? [60]:
- This option allows you to start the plant at a 'level' other than the
- 'base'. If you accept the default value for "Max # spheres" (above)
- of 60, and then enter 60 for this parameter, the program would NOT
- output ANY branches that are 60 spheres or 'longer'. This allows you
- to out to output an object that looks like more than 1 plant. NOTE that
- you have to translate the object in the -Y direction as each branch is
- where it would be if there was a full plant. Experiment with this one.
- Default is the same value as "Max # spheres" (above), which will create
- a complete plant.
-
- Divide branches by ? [3.0]:
- This controls the size of each new level of branches and the overall
- detail of the object. If you use a value much smaller than the default
- value of 3.0, the files can become very 'detailed', but HUGE. If you
- accept all defaults, the plant will consist of 4 60 sphere branches, each
- having 4 20 sphere branches (60 / 3.0), each having 4 6 sphere branches
- and so on. Note that the division is INTEGER, so the program will 'round'
- off the numbers.
-
- Radial distortion (PI * x) ? [1.0]:
- This value is wired to PI, which is used to calculate the basic x z
- geometry of the plant. You can get some interesting effects by entering
- values in the 0.7 to 0.9 range.
-
- Branch rotation factor ? [1.0]:
- This controls the rate and direction of the bending of the plant.
-
- Overall noise factor ? [1.0]:
- This controls the random variation of the path of the branches. Enter
- a very low value, around 0.001, to see the plant with no X Z variation.
- Values higher than 1.5 or so will created a very distorted shape.
-
- Height scaling ? [1.0]:
- This is wired to the Y ('height') scaling of the shape. The default
- height in the output file is about 10 units. Higher values will make
- a tall and slim plant while lower values will make a short and wide plant.
-
- Sphere scaling ? [1.0]:
- This value will scale EVERY sphere in the plant object by this amount.
- Individual spheres range from 0.21 to 0.11 using the program defaults.
- This looks good if you use cone output and enter a value of around 0.4
- to 0.75, giving you a plant with very slim and smooth branches.
-
-
- ----------COMMAND LINE PARAMETERS
-
- Usage: plant [options]
- Options: -b Write nested bounds in POV or Polyray output.
- -d# enables 2D (xz) display of plant... # is the graphics mode.
- 0=no display 1=640x480 2=800x600 3=1024x768
- Default value is 0.
- -e Gives you a menu with an extended choice of options.
- -o Spheres ONLY (no cones) in output file.
- -p# Where # is the precision of the output file numbers.
- Range is 3 - 9 with a default precision of 6 decimal places.
- -s Include all bounding stats in output file. (-b only)
- -t DO NOT write multiple textures in output file.
-
- Defaults are: No bounding boxes.
- No display.
- No extended menus.
- Write spheres and cones (spheres ONLY for POV 1.0)
- Precision of 6 decimals in the output file.
- No detailed bounding stats in the output file.
- Use 4 color texture scheme.
-
- Enter PLANT at the DOS prompt to accept the default command line parameters.
-
- You can hit any key while the object is being generated and the program will
- end, but it will still write a partial (and usable) file.
-
-
- ----------TIMING INFO
- The times shown below are for rendering the default object with a very low
- Noise factor (see above) for object shape consistency. The images were
- rendered on a 386/40 with coprocessor and 8 Mb, using POV v1.0 (ibmicb),
- POV 2.0 (ibmicb), and Polyray v1.6a. Image size was 320x240 using the
- included scene files.
-
- Polyray 1.6a 00:06:44
- POV-Ray 1.0 00:16:08 (bounded)
- POV-Ray 2.0 00:04:32 (!)
-
- The object consisted of 1,456 spheres.
- The defaults were used except for Overall Noise 0.0001 and -o (spheres only).
-
-
- ----------SCALING INFO
- I had problems using POV 1.0 if I'd scale the object smaller than around
- 1 or 2 units square. The object APPEARED to be clipped from the bounds, but
- in 'reality' it wasn't. If I scaled it up and moved the camera and light by
- the same amount, the image would be fine. I *believe* there is a problem
- with POV 1.0, if you scale spheres to a very small size. I'm not sure if
- this is POV's code or mine that's making this happen.
-
- This does not appear when the object is at or larger than the default output
- size. The default size is about 10 units square. This does not seem to apply
- to Polyray or POV 2.0.
-
-
- ----------MISC. INFO
- There are a few differences in the output options depending on the
- format you are using. As stated earlier, the POV 1.0 option WILL NOT output
- cones. It is very possible to implement but, what can I say, I got 2.0 and
- so should you !! It's so much more flexible and faster. If you're still
- using 1.0, you MUST get 2.0 for the speed alone.
-
- Polyray and POV 2.0 formats allow you to output without textures, allowing
- YOU to specify a 'global' texture for the entire plant in the .POV (or .PI)
- file. I feel this is a flexible option as it allows you to color or image
- map the plant as a whole. Previous versions of PLANT applied a separate
- 'copy' of the texture to each sphere (!) in each branch. If you accept
- the default 4 color texture scheme, note that the texture is applied to each
- branch (union), instead of each sphere in each union. I feel this is also a
- better solution. If you are using POV 1.0, this option will use the dark
- green texture for each branch (same method as 4 color). This is because the
- plant is written as a COMPOSITE and you can not texture a composite as a
- whole, only the individual 'objects' in a composite. (hurray for 2.0!!!)
-
- The bounding box output is now optional, as POV 2.0 will render a union
- MUCH faster without the bounds. If you're still using 1.0, then you should
- specify -b on the command line to enable bounding of the object, as 1.0 does
- not use autobounds as 2.0 does. You can also use bounds for Polyray, but the
- speed increase is marginal, at best (approx. 6%).
-
-
- ----------COPYRIGHT STATEMENT
- PLANT is a freely distributable program. There is no charge or
- registration fee associated with the use of PLANT.
-
- The author retains the copyright to the program and authorizes free
- distribution, but makes no guarantees or warranties with this program and
- claims no responsibility for any damages or losses incurred through use
- of this program.
-
-
- ---------MISC.
- PLANT.EXE v0.50a is written in MS C++ v8.00. It is not at all optimized
- as it is still in an early stage.
-
- I would like to thank Eric Barish, Dan Farmer, and Dan Richardson for their
- help and suggestions on the bounding issue.... Thanks a bunch, guys !!!
-
- If you have any questions, comments, suggestions, or otherwise, please let
- me know as I would like to hear them and possibly incorporate any ideas into
- a newer version.
-
- Enjoy !
-
- Rob Bryerton
- CIS[73747,433] GRAPHDEV forum
-
-